package com.eastfair.home.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.eastfair.boot.request.PageParams;
import com.eastfair.boot.service.SuperService;
import com.eastfair.home.dto.ReportVenueSpaceDTO;
import com.eastfair.home.entity.ReportVenueSpace;
import com.eastfair.home.vo.ReportVenueSpaceVO;
import com.eastfair.venueservice.dto.ServiceBookingDTO;
import com.eastfair.venueservice.dto.ServiceBookingQuery;
import com.eastfair.venueservice.vo.ServiceBookingVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 业务接口
 * 场馆一键报馆记录
 * </p>
 *
 * @author dq
 * @date 2022-09-07
 */
@Deprecated
public interface ReportVenueSpaceService extends SuperService<ReportVenueSpace> {

    /**
     * 分页查询一键报馆记录VO列表.
     *
     * @param pageParams the page params
     * @return the page
     */
    IPage<ReportVenueSpaceVO> listReportVenueSpaceVOs(PageParams<ReportVenueSpaceDTO> pageParams);

    /**
     * 获取一键报馆记录.
     *
     * @param id the id
     * @return the report venue space vo by id
     */
    ReportVenueSpaceVO getReportVenueSpaceVOById(Long id);

    /**
     * 一键报馆编号查询一键报馆记录.
     *
     * @param reportVenueSpaceNumber the report venue space number
     * @return the by report venue space number
     */
    ReportVenueSpace getByReportVenueSpaceNumber(String reportVenueSpaceNumber);

    /**
     * 提交一键报馆.
     *
     * @param reportVenueSpaceNumber the report venue space number
     * @return the boolean
     */
    boolean submitReportVenueSpace(String reportVenueSpaceNumber);

    /**
     * 保存一键报馆记录.
     *
     * @param reportVenueSpaceDTO the report venue space dto
     * @return the report venue space
     */
    ReportVenueSpace saveReportVenueSpace(ReportVenueSpaceDTO reportVenueSpaceDTO);

    /**
     * 更新一键报馆记录.
     *
     * @param reportVenueSpaceDTO the report venue space dto
     * @return the report venue space
     */
    ReportVenueSpace updateReportVenueSpace(ReportVenueSpaceDTO reportVenueSpaceDTO);

    /**
     * 更新一键报馆记录为已提交.
     *
     * @param reportVenueSpace the report venue space
     * @return the boolean
     */
    boolean updateReportVenueSpaceSubmit(ReportVenueSpace reportVenueSpace);

    /**
     * 更新审核结果.
     *
     * @param reportVenueSpaceDTO the report venue space dto
     * @return the boolean
     */
    boolean updateAuditStatus(ReportVenueSpaceDTO reportVenueSpaceDTO);

    /**
     * 删除一键报馆记录.
     *
     * @param ids the ids
     * @return the boolean
     */
    boolean removeReportVenueSpace(List<Long> ids);

    /**
     * 主场一键报馆的全部服务
     * @param serviceBookingQuery
     * @return
     */
    Page<ServiceBookingVO> queryServiceBookingOfHome(PageParams<ServiceBookingQuery> serviceBookingQuery);

    /**
     * 主场一键报馆服务(保存)
     * @param serviceBookingDTO
     * @return
     */
    Boolean submitServiceBookingToVenue(List<ServiceBookingDTO> serviceBookingDTO);

    /**
     * 导入校验
     * @param file
     * @param exhibitionManageId
     * @param homeId
     * @param spaceName
     * @throws Exception
     */
    void checkImport(MultipartFile file, Long exhibitionManageId, Long homeId, String spaceName) throws Exception;
}
